using Headsight.BPMN2WF.BPMN.Model;
using Headsight.BPMN2WF.Transformation;
using Headsight.BPMN2WF.Transformation.BPMN2TransformerMappings.Additions;

namespace Headsight.BPMN2WF.WF.Simplification
{
    /// <summary>
    /// <see cref="IBPMN2WFTransformations"/> implementation
    /// wrapping the <see cref="IBPMN2WFTransformation"/>s returned
    /// by the passed in <see cref="IBPMN2WFTransformations"/> by instances of
    /// <see cref="BPMN2WFTransformationResultsCollector"/>. 
    /// </summary>
    public class BPMN2WFTransformationsResultsCollectorWrapper : BPMN2WFTransformationsDelegateBaseImpl
    {
        public BPMN2WFTransformationsResultsCollectorWrapper(IBPMN2WFTransformations @delegate) : base(@delegate)
        {
        }

        public override IBPMN2WFTransformation Get(BPMNFlowNode flowNode)
        {
            return new BPMN2WFTransformationResultsCollector(Delegate.Get(flowNode));
        }
    }
}